import axios from 'axios';
// import router from '../router/index'
// import store from '../store/index.js'
// import { Toast } from 'vant'
import QS from 'qs';

// 配置默认地址
// axios.defaults.baseURL = '/reports'
// axios.defaults.baseURL = '/api'

/**
 * 跳转登录页
 * 携带当前页面路由，以期在登录页面完成登录后返回当前页面
 */
// const toLogin = () => {
//     router.replace({
//         path: '/login',
//         query: {
//             redirect: router.currentRoute.fullPath
//         }
//     });
// }

// post请求的请求头
axios.defaults.headers.post['Content-Type'] =
  'application/x-www-form-urlencoded';

// axios拦截器，目的是为了在请求头上带上token
// 添加请求拦截器
axios.interceptors.request.use(
  (config) => {
    if (localStorage.getItem('Authorization')) {
      // token字段是要和后端协商好的
      config.headers.common['token'] = localStorage.getItem('Authorization');
      // debugger
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);
// 添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    // if(response.code !== 200) {
    //   this.$message.error(response.message);
    //   return Promise.reject(response);
    // } else {
    return response;
    // }
  },
  function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);
/**  get方法，对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function get(url, params) {
  url = '/reports' + url;
  return new Promise((resolve, reject) => {
    axios
      .get(url, {
        params: params,
      })
      .then((res) => {
        resolve(res.data);
      })
      .catch((err) => {
        reject(err.data);
      });
  });
}
/**
 * post方法，对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function post(url, params) {
  return new Promise((resolve, reject) => {
    axios
      .post(url, QS.stringify(params))
      .then((res) => {
        resolve(res.data);
      })
      .catch((err) => {
        reject(err.data);
      });
  });
}
/**  get方法，对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function getMock(url, params) {
  return new Promise((resolve, reject) => {
    axios
      .get(url, {
        params: params,
      })
      .then((res) => {
        resolve(res.data);
      })
      .catch((err) => {
        reject(err.data);
      });
  });
}
